草庐IT

bash - 从 docker 容器访问主机的 ssh 隧道

使用ubuntutusty,有一个服务在远程机器上运行,我可以通过来自localhost:9999的ssh隧道通过端口转发访问该服务。我有一个docker容器正在运行。我需要从容器内通过主机的隧道访问该远程服务。我尝试使用-L9000:host-ip:9999从容器到主机建立隧道,然后通过127.0.0.1:9000从内部访问服务容器无法连接。要检查端口映射是否打开,我尝试了nc-luv-p9999#在主机nc-luv-p9000#在容器中关注this,parag.2但是没有感知到的交流,即使在做nc-luv主机IP-p9000在容器中我也尝试通过dockerrun-p9999:900

bash - Docker 终端中的 Docker 行数在 docker 内部发生变化

我想知道如何更改以下行为。假设我的终端有28行。然后我使用以下命令:$tputlines#myterminal28$dockerrun--rm-itubuntu:16.04tputlines#dockercontainer24##WHY??$dockerrun--rm-itubuntu:16.04bash#dockercontainerinsidecommandroot@810effa2777c:/#tputlines28如您所见,即使所有结果都应为28,当我将容器调用为dockerrun--rm-itubuntu:16.04tputlines尽管我的终端大小,它总是给我24。这不仅适

docker - 为什么 Docker 说它不能执行 'bash"?

我在MacOSX上使用Docker(带有Boot2Docker)。我可以从DockerHub运行图像。但是,当我尝试像这样运行自己的图像之一时:dockerrun-Pmylocalimage或dockerrun-Pmylocalimagebin/a3-write-back或...我明白了:docker"env:can'texecute'bash':Nosuchfileordirectory"我猜它在容器中找不到要执行的bash二进制文件,但是为什么呢?基础镜像是errordeveloper/oracle-jdk感谢您的帮助。阿什莉。[{"Architecture":"amd64","A

bash - 如果 Docker 容器正在运行,则停止并删除它

如果Docker容器正在运行,我希望以务实的方式停止并删除它。这是一个构建脚本。举个例子。如何停止和删除bash脚本中NAMES列下的Docker容器“rabbitmq”?dockerpsCONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES9909a5e2856frabbitmq-image"/docker-entrypoint.s"11minutesagoUp11minutes0.0.0.0:5672->5672/tcp,rabbitmq8990dd1fe503redis-image"/entrypoint.shredis"6weeksagoU

regex - 仅当具有给定名称的 Docker 容器不存在时,如何执行 Bash 命令?

在Jenkins机器上,我想创建一个具有指定名称的docker容器,前提是它尚不存在(在shell脚本中)。我想我可能会运行命令来创建容器,如果有失败则忽略失败,但这会导致我的Jenkins工作失败。因此,我想知道如何使用bash检查docker容器是否存在。 最佳答案 您可以通过grepping查找来检查是否存在正在运行的容器。然后像这样启动它:[!"$(dockerps-a|grep)"]&&dockerrun-d--name更好:利用https://docs.docker.com/engine/reference/comman

bash - 如何检查本地是否存在带有特定标签的 Docker 镜像?

我想知道本地是否存在带有特定标签的Docker镜像。如果Docker客户端本身无法执行此操作,我可以使用bash脚本。只是为潜在的bash脚本提供一些提示,运行dockerimages命令的结果返回以下内容:REPOSITORYTAGIMAGEIDCREATEDVIRTUALSIZErabbitmqlateste8e654c05c915weeksago143.5MBbusyboxlatest8c2e066076966weeksago2.433MBrabbitmq3.4.4a4fbaad9f99611weeksago131.5MB 最佳答案

bash - 从 Docker 容器中获取环境变量

从Docker容器中获取环境变量的最简单方法是什么在Dockerfile中没有声明?例如,通过某些dockerexeccontainer/bin/bashsession设置的环境变量?我可以做dockerexeccontainerenv|grepENV_VAR,但我更喜欢只返回值的东西。我尝试过使用dockerexeccontainerecho"$ENV_VAR",但替换似乎发生在容器之外,所以我没有从容器中获取envvar,而是我自己电脑上的环境变量。谢谢。 最佳答案 查看所有环境变量:dockerexeccontainerenv

bash - 如何通过 docker run 将参数传递给 Shell 脚本

我是docker世界的新手。我必须调用一个通过docker容器获取命令行参数的shell脚本。例如:我的shell脚本如下所示:#!bin/bashecho$1Dockerfile看起来像这样:FROMubuntu:14.04COPY./file.sh/CMD/bin/bashfile.sh我不确定如何在运行容器时传递参数 最佳答案 在file.sh中使用此脚本#!/bin/bashechoYourcontainerargsare:"$@"还有这个DockerfileFROMubuntu:14.04COPY./file.sh/ENT

bash - Docker:如何将 bash 与基于 Alpine 的 docker 镜像一起使用?

我从openjdk:8-jdk-alpine创建了一个docker镜像,但是当我尝试执行简单的命令时出现以下错误:RUNbash/bin/sh:bash:notfoundRUN./gradlewbuildenv:can'texecute'bash':Nosuchfileordirectory 最佳答案 Alpinedocker镜像默认没有安装bash。您需要添加以下命令来获取bash:RUNapkupdate&&apkaddbash如果你使用的是Alpine3.3+那么你可以这样做:RUNapkadd--no-cachebash保持

bash - 如何在 Docker Postgres 的脚本中创建用户/数据库

我一直在尝试通过创建自定义用户和数据库来为开发postgres实例设置容器。我正在使用officialpostgresdockerimage.在文档中,它指示您在/docker-entrypoint-initdb.d/文件夹中插入一个bash脚本,以使用任何自定义参数设置数据库。我的bash脚本:make_db.shsupostgres-c"createuser-w-d-r-sdocker"supostgres-c"createdb-Odockerdocker"DockerfileFROMlibrary/postgresRUN["mkdir","/docker-entrypoint-i